import { Bean, Autowired } from '../beans';
import { TodoStore } from '../stores/TodoStore';
import { EventController } from './EventController';

@Bean('todoController')
export class TodoController {
  @Autowired('todoStore')
  private todoStore!: TodoStore;

  @Autowired('eventController')
  private eventController!: EventController;

  addTodo(title: string) {
    if (!title.trim()) return;
    
    this.todoStore.addTodo(title);
    this.eventController.emit('todo:added', title);
  }

  removeTodo(id: string) {
    this.todoStore.removeTodo(id);
    this.eventController.emit('todo:removed', id);
  }

  toggleTodo(id: string) {
    this.todoStore.toggleTodo(id);
    this.eventController.emit('todo:toggled', id);
  }

  setFilter(filter: 'all' | 'active' | 'completed') {
    this.todoStore.setFilter(filter);
    this.eventController.emit('filter:changed', filter);
  }
} 